package com.demo.java.OD101_150.OD144;

import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【翻转单词顺序】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145739271
 */
public class OdMain {
    public static void main(String[] args) {
        // 创建Scanner对象，用于读取用户输入
        try (Scanner s = new Scanner(System.in)) {
            // 读取一行输入的字符串
            String line = s.nextLine();
            // 读取两个整数，分别表示要删除的单词范围的起始位置（start）和结束位置（end）
            int start = s.nextInt();
            int end = s.nextInt();
            // 调用方法处理并输出结果
            solveMethod(line, start, end);
        }
    }

    // 处理方法：删除给定范围内的单词并返回剩余的单词
    private static void solveMethod(String line, int start, int end) {
        // 将输入的字符串按空格分割为单词数组
        String[] words = line.trim().split("\\s+");

        // 校验start和end的有效性
        // start不能小于0，end不能大于单词数组的最后一个索引
        start = Math.max(start, 0);
        end = Math.min(end, words.length - 1);

        // 如果start和end相等，或者start超出了数组范围，或者end小于0，输出"EMPTY"
        if (end == start || start > words.length - 1 || end < 0) {
            System.out.println("EMPTY");
        } else {
            // 创建一个ArrayList，用于存储删除后的单词
            ArrayList<String> list = new ArrayList<>(Arrays.asList(words).subList(0, start));

            // 将要删除范围的单词去除，并添加剩余的单词
            // 从end到words.length范围的单词添加到list中
            Collections.addAll(list, Arrays.copyOfRange(words, end + 1, words.length));

            // 合并成一个字符串并输出
            String res = String.join(" ", list);
            System.out.println(res);
        }
    }
}